1.原型链继承
	特点：重写子类的原型对象，父类原型对象上的属性和方法都会被子类继承
	问题：在父类中定义的实例引用类型的属性，一旦被修改，其它的实例也会被修改
		  当实例化子类的时候，不能传递参数到父类
2、借用构造函数模式
	特点：在子类构造函数内部间接调用（call(),apply(),bind()）父类的构造函数
		 原理：改变父类中的this指向
		 优点：仅仅的是把父类中的实例属性当做子类的实例属性，并且还能传参
		 缺点：父类中公有的方法不能被继承下来
 3.组合继承
	特点:结合了原型链继承和借用构造函数继承的优点
		原型链继承：公有的方法能被继承下来
		借用构造函数：实例属性能被子类继承下来
	缺点：调用了两次两次父类的构造函数
		 1.实例化子类对象
		 2.子类的构造函数内部（好）
4.寄生组合式继承
	var b = Object.create(a);
	将a对象作为b实例的原型对象
	把子类的原型对象指向了 父类的原型对象
	Dog.prototype = Object.create(Animal.prototype)
	
	开发过程中使用最广泛的一种继承模式